package com.sz.mes.entity;

import java.util.Date;
import java.lang.Double;
import java.math.BigDecimal;
import javax.validation.constraints.NotNull;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.hibernate.validator.constraints.Length;
import java.util.List;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.sz.mes.entity.BaseCustomEntity;
import com.diboot.core.binding.query.BindQuery;
import com.diboot.core.binding.query.Comparison;
import com.diboot.core.util.D;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
* 销售出库表 Entity定义
* @author hem
* @version 1.0
* @date 2023-09-15
* Copyright © szhs
*/
@Getter @Setter @Accessors(chain = true)
@TableName("ship")
public class Ship extends BaseCustomEntity {
    private static final long serialVersionUID = 4691817615071791824L;

    /**
    * 单据日期 
    */
    @JsonFormat(pattern = D.FORMAT_DATE_Y4MD)
    @TableField()
    private Date receiptDate;

    /**
    * 单据编号 
    */
    @Length(max=100, message="单据编号长度应小于100")
    @TableField()
    private String receiptNum;

    /**
    * 行号 
    */
    @Length(max=100, message="行号长度应小于100")
    @TableField()
    private String rowNum;

    /**
    * 客户名称 
    */
    @Length(max=100, message="客户名称长度应小于100")
    @TableField()
    private String customerName;

    /**
    * 业务员 
    */
    @Length(max=100, message="业务员长度应小于100")
    @TableField()
    private String salesman;

    /**
    * 客户订单号 
    */
    @Length(max=100, message="客户订单号长度应小于100")
    @TableField()
    private String customerOrder;

    /**
    * 客户行项目 
    */
    @Length(max=100, message="客户行项目长度应小于100")
    @TableField()
    private String customerRow;

    /**
    * 料号 
    */
    @Length(max=100, message="料号长度应小于100")
    @TableField()
    private String productNum;

    /**
    * 料品名称 
    */
    @Length(max=100, message="料品名称长度应小于100")
    @TableField()
    private String productName;

    /**
    * 料品规格 
    */
    @Length(max=100, message="料品规格长度应小于100")
    @TableField()
    private String productSpecification;

    /**
    * 出货数量 
    */
    @TableField()
    private Integer shipmentQuantity;

    /**
    * 料品财务分类 
    */
    @Length(max=100, message="料品财务分类长度应小于100")
    @TableField()
    private String materialFinancial;

    /**
    * 客户采购员 
    */
    @Length(max=100, message="客户采购员长度应小于100")
    @TableField()
    private String clientPurchasePerson;

    /**
    * 客户PR号 
    */
    @Length(max=100, message="客户PR号长度应小于100")
    @TableField()
    private String clientPrNum;

    /**
    * 客户使用人 
    */
    @Length(max=100, message="客户使用人长度应小于100")
    @TableField()
    private String clientUser;

    /**
    * 客户物料号 
    */
    @Length(max=100, message="客户物料号长度应小于100")
    @TableField()
    private String clientMaterialNum;

    /**
    * 客户图号 
    */
    @Length(max=100, message="客户图号长度应小于100")
    @TableField()
    private String clientPicNum;

    /**
    * 客户工厂代码 
    */
    @Length(max=100, message="客户工厂代码长度应小于100")
    @TableField()
    private String clientFactoryCode;

    /**
    * 客户库位 
    */
    @Length(max=100, message="客户库位长度应小于100")
    @TableField()
    private String clientLocation;

    /**
    * 客户订单号+项行号 
    */
    @Length(max=100, message="客户订单号+项行号长度应小于100")
    @TableField()
    private String clientOrderRow;

    /**
    * WBS元素号/成本中心号 
    */
    @Length(max=100, message="WBS元素号/成本中心号长度应小于100")
    @TableField()
    private String wbsNum;

    /**
    * 销售订单号 
    */
    @Length(max=100, message="销售订单号长度应小于100")
    @TableField()
    private String saleOrder;

    /**
    * 创建人 
    */
    @Length(max=100, message="创建人长度应小于100")
    @TableField(fill = FieldFill.INSERT)
    private String createBy;


} 
